﻿CREATE PROC Inv.spInsertaCuponGenerado
	@psCorreo	VARCHAR(250),
	@psIpMod	VARCHAR(15)
AS
BEGIN
	DECLARE @sMensaje VARCHAR(250), @sCodigo VARCHAR(14), @sPorc VARCHAR(10)
	IF EXISTS(SELECT 1 FROM Inv.CuponRegistro WHERE CorreoGenera = @psCorreo AND CAST(DATEADD(DAY, 7,FechaGenerado) AS DATE) > CAST(GETDATE() AS DATE))
	BEGIN
		SET @sMensaje = 'El correo electrónico ya genero un cupon de descuento, sólo es posible generar un cupon por semana.'
		RAISERROR(@sMensaje, 16 , 1)
		RETURN
	END
	
	EXEC Inv.spGeneraCodigo
		@psCodigo = @sCodigo OUTPUT, -- varchar(14)
	    @psCodigo1 = NULL -- varchar(7)
		
	INSERT Inv.CuponRegistro
	        ( FechaGenerado ,
	          FechaVigencia ,
	          CodigoCupon ,
	          CorreoGenera ,
	          IpMod ,
	          FechaUltMod
	        )
	VALUES  ( GETDATE() , -- FechaGenerado - date
	          DATEADD(DAY, 15, GETDATE()) , -- FechaVigencia - date
	          @sCodigo , -- CodigoCupon - varchar(14)
	          @psCorreo , -- CorreoGenera - varchar(250)
	          @psIpMod , -- IpMod - varchar(15)
	          GETDATE()  -- FechaUltMod - datetime
	        )
	        
	SELECT	@sPorc = CASE WHEN RAND() > 0.7 THEN '10 %' ELSE '5 %' END
	        
	SELECT	@sCodigo AS Cupon,
			@sPorc AS Porcentaje,
			CAST((CAST(CONVERT(VARCHAR, DATEADD(DAY, 15, GETDATE()), 112) AS INT) * 2) AS VARCHAR) AS FechaVigencia,
			GETDATE() AS FechaGenerado,
			'http://ganda-invitaciones.com/verificacupon.aspx?code=' + @sCodigo + '&fv=' + CAST((CAST(CONVERT(VARCHAR, GETDATE(), 112) AS INT) * 2) AS VARCHAR) AS Url
END